package com.ruoyi.system.api.service;

import com.ruoyi.system.api.ResponseWithData;
import com.ruoyi.system.api.domain.User;
import java.util.List;

/**
 * 用户信息 (数据来源于CC端主动调用)Service接口
 * 
 * @author shihx
 * @date 2020-02-25
 */
public interface IUserService 
{
    /**
     * 查询用户信息 (数据来源于CC端主动调用)
     * 
     * @param id 用户信息 (数据来源于CC端主动调用)ID
     * @return 用户信息 (数据来源于CC端主动调用)
     */
    public User selectUserById(Long id);

    /**
     * 根据enginnerId查询用户信息
     * @param enginnerId
     * @return
     */
    public User selectUserByEnginnerId(String enginnerId);

    /**
     * 查询用户信息 (数据来源于CC端主动调用)列表
     * 
     * @param user 用户信息 (数据来源于CC端主动调用)
     * @return 用户信息 (数据来源于CC端主动调用)集合
     */
    public List<User> selectUserList(User user);

    /**
     * 新增用户信息 (数据来源于CC端主动调用)
     * 
     * @param user 用户信息 (数据来源于CC端主动调用)
     * @return 结果
     */
    public int insertUser(User user);

    /**
     * 修改用户信息 (数据来源于CC端主动调用)
     * 
     * @param user 用户信息 (数据来源于CC端主动调用)
     * @return 结果
     */
    public int updateUser(User user);

    /**
     * 批量删除用户信息 (数据来源于CC端主动调用)
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteUserByIds(String ids);

    /**
     * 删除用户信息 (数据来源于CC端主动调用)信息
     * 
     * @param id 用户信息 (数据来源于CC端主动调用)ID
     * @return 结果
     */
    public int deleteUserById(Long id);

    /**
     * 获取FSE基本信息接口
     * @methodName: getFseInformation
     * @description: TODO
     * @param ServiceNoticeId
     * @param EnginnerId
     * @return: java.util.List<com.ruoyi.system.api.domain.User>
     * @author: shihx
     * @date: 2020/3/6 8:48
    **/
    public ResponseWithData<?> getFseInformation(String ServiceNoticeId, String EnginnerId) throws Exception;

    /**
     * 根据员工ID更新推送标识
     * @methodName: updateRegistrationId
     * @description: TODO
     * @param registrationId
     * @param EnginnerId
     * @return: com.ruoyi.system.api.ResponseWithData<?>
     * @author: shihx
     * @date: 2020-04-01 13:20
    **/
    public ResponseWithData<?> updateRegistrationId(String registrationId, String EnginnerId) throws Exception;

    /**
     * 根据员工ID更新员工信息
     * @methodName: updateUserByEnginnerId
     * @description: TODO
     * @param user
     * @return: void
     * @author: shihx
     * @date: 2020-04-08 8:43
    **/
    public int updateUserByEnginnerId(User user);

    /**
     * 验证当前用户是否休假
     * @methodName: checkUserWorkDay
     * @description: TODO
     * @param enginnerId
     * @return: com.ruoyi.system.api.ResponseWithData<?>
     * @author: shihx
     * @date: 2020-04-08 14:11
    **/
    public ResponseWithData<?> checkUserWorkDay(String enginnerId) throws Exception;

    /**
     * 获取FSE本地用户基本信息接口
     * @methodName: getFseInformation
     * @description: TODO
     * @param enginnerId
     * @return: java.util.List<com.ruoyi.system.api.domain.User>
     * @author: shihx
     * @date: 2020/4/20 16:41
     **/
    ResponseWithData<?> getStUserMessage(String enginnerId) throws Exception;
}
